# x220 Coreboot Setup


Configuration and helper script for easy build, assembly and installation of Coreboot on the Thinkpad X220

This setup keeps the descriptor, gbe config and Intel ME from the stock BIOS, neutralizes the Intel ME by removing most of its partitions with [me_cleaner](https://github.com/corna/me_cleaner) and prepares a flash image with [Coreboot](https://www.coreboot.org/) using [SeaBIOS](https://www.seabios.org)+[GRUB](https://www.gnu.org/software/grub/) with LUKS+LVM support as the default payload

Usage:

    ./cb-helper operation [parameters]

Alternatively the **auto-run** script can be launched to automatically run through all the operations in order, provided a valid BIOS stock image as been placed in "binaries/bios.bin"



## Configs

**coreboot.config** - Coreboot build configuration

**grub.config** - GRUB build configuration

**grub.cfg** - GRUB configuration and boot menu

**grub_memdisk.cfg** - GRUB configuration inside the memdisk

**grub_modules.conf** - GRUB modules, installed and loaded



## Operations

**download_code**

Download repositories for Coreboot, GRUB and me_cleaner


**build_utils**

Build useful utilities like cbfstool and idftool


**split_bios**

Splits the stock bios ("binaries/bios.bin") into descriptor, gbe configuration and Intel ME


**neuter_me**

Neutralize Intel ME by removing most of its partitions using me_cleaner


**pre_build_coreboot**

Copy config files and build Coreboot's toolchain


**build_coreboot**

Build Coreboot


**build_grub**

Build GRUB


**assemble_grub**

Assembles configurations and resources in a nice usable GRUB payload


**config_seabios**

Configure SeaBIOS to boot GRUB directly from the CBFS volume


**install_grub**

Install the GRUB payload and configuration in the CBFS volume


**flash** operation programmer

Read or write flash chips with a multitude of programmers

Valid operations: check, read, write

Valid programmers: internal, ftdi, u2, rpi



## Attribuition

config/**grub.cfg**, config/**grub_modules.conf** and misc/**usqwerty.gkb** are based on their [Libreboot](https://libreboot.org/) counterparts which are released under the [GNU GPLv3](https://notabug.org/libreboot/libreboot/raw/master/COPYING)

The font **DejaVuSans Mono** is used in GRUB and is licensed under [a free license](https://dejavu-fonts.github.io/License.html)

Converted to bitmap with the following command

    grub/grub-mkfont --size=24 --bold -o "misc/dejavusansmono.pf2" /usr/share/fonts/TTF/DejaVuSansMono.ttf


## Licensing

This entire project is licensed under the [GNU General Public License Version 3](https://notabug.org/Velsoth/x220-coreboot/raw/master/LICENSE)